package cn.xjt.hello;

import java.awt.*;

/**
 *
 * 测试线程thread中的方法
 * yield():释放当前cpu的执行权
 * jon():在当前线程调用其他线程的join方法，直到其他方法执行完，才会继续执行当前方法
 * sleep(long millitime): 休息一会，millitime毫秒过后重新排队
 * stop():强制终止当前线程
 * isalive():判断线程是否存活
 * 线程的优先级
 * 1.MAX_PRIORITY=10
 * 2.MIN_PRIOITY=1
 * 3.NORM_PRIOITY=5 -->默认的优先级
 * 如何获取和设置当前线程的优先级
 * getPrioity();返回线程的优先级
 * setPrioity(int Prioity);设置线程的优先级
 * @author xujiangtao
 * @create 2020-07-30-13:55
 */
public class TestThreadMethod {
    public static void main(String[] args) {
        mythread m = new mythread();
        m.setName("线程一");
        m.start();
        //Thread.currentThread().setName("主线程");
        System.out.println(Thread.currentThread().getName());
        for(int i =0;i<100;i++)
        {
            if (i%2==0)
                System.out.println(i);
            if(i==20)
            {
                try {
                    m.join();       //当i=20的时候，会让其他线程(m)加入，直到其他线程(m)结束运行
                    //才会接着再主线程运行
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println(m.isAlive());//判断线程是否存活，返回false
    }
}
class mythread extends thread{

    @Override
    public void run() {
        //Thread.currentThread().setName("xu线程");
        //System.out.println(Thread.currentThread().getName());
        try {
            sleep(4000);         //可以让线程睡眠4000毫秒
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(thread.currentThread());

        //Thread.yield();         //释放当前cpu的执行权，下一个执行权选择谁是谁
        System.out.println(isAlive());  //判断线程是否存活，返回true
    }
}
